﻿using System.Collections.Generic;
using System.Runtime.Serialization;

namespace QDP.Contracts
{
    /// <summary>
    /// 表示一个数据服务资源参数结构情况对象。
    /// </summary>
    [DataContract]
    [KnownType(typeof(GSArcGISImageMapServiceLayer))]
    [KnownType(typeof(GSArcGISTiledMapServiceLayer))]
    [KnownType(typeof(GSArcGISDynamicMapServiceLayer))]
    [KnownType(typeof(GSArcGISFeatureLayer))]
    [KnownType(typeof(GSTiDiTuMapServiceLayer))]
    [KnownType(typeof(ServiceDirectory))]
    [KnownType(typeof(MapServiceLayerBase))]
    public class GisServiceConfig
    {
        /// <summary>
        /// 以默认参数构造一个数据服务资源参数结构情况对象的实例。
        /// </summary>
        public GisServiceConfig()
        {
            // 初始化可以自动加载的数据服务资源结构清单。
            this.AutoloadMapServices = new List<MapServiceLayerBase>();
            // 初始化数据服务资源结构清单。
            this.MapServices = new List<MapServiceLayerBase>();
            // 初始化可作为鹰眼使用的数据服务资源结构清单。
            this.OverviewMapServices = new List<MapServiceLayerBase>();
        }
        /// <summary>
        /// 获取或设置可以自动加载的数据服务资源结构清单。
        /// </summary>
        [DataMember]
        public List<MapServiceLayerBase> AutoloadMapServices { get; set; }
        /// <summary>
        /// 获取或设置数据服务资源结构清单
        /// </summary>
        [DataMember]
        public List<MapServiceLayerBase> MapServices { get; set; }
        /// <summary>
        /// 获取或设置可作为鹰眼使用的数据服务资源结构清单
        /// </summary>
        [DataMember]
        public List<MapServiceLayerBase> OverviewMapServices { get; set; }
    }
}
